
_forktest:     file format elf32-i386


Disassembly of section .text:

00000000 <main>:
  printf(1, "fork test OK\n");
}

int
main(void)
{
   0:	55                   	push   %ebp
   1:	89 e5                	mov    %esp,%ebp
   3:	83 e4 f0             	and    $0xfffffff0,%esp
  forktest();
   6:	e8 35 00 00 00       	call   40 <forktest>
  exit();
   b:	e8 64 03 00 00       	call   374 <exit>

00000010 <printf>:
#include "stat.h"
#include "user.h"

void
printf(int fd, char *s, ...)
{
  10:	53                   	push   %ebx
  11:	83 ec 18             	sub    $0x18,%esp
  14:	8b 5c 24 24          	mov    0x24(%esp),%ebx
  write(fd, s, strlen(s));
  18:	89 1c 24             	mov    %ebx,(%esp)
  1b:	e8 70 01 00 00       	call   190 <strlen>
  20:	89 5c 24 04          	mov    %ebx,0x4(%esp)
  24:	89 44 24 08          	mov    %eax,0x8(%esp)
  28:	8b 44 24 20          	mov    0x20(%esp),%eax
  2c:	89 04 24             	mov    %eax,(%esp)
  2f:	e8 60 03 00 00       	call   394 <write>
}
  34:	83 c4 18             	add    $0x18,%esp
  37:	5b                   	pop    %ebx
  38:	c3                   	ret    
  39:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00000040 <forktest>:

void
forktest(void)
{
  40:	53                   	push   %ebx
  int n, pid;

  printf(1, "fork test\n");

  for(n=0; n<1000; n++){
  41:	31 db                	xor    %ebx,%ebx
  write(fd, s, strlen(s));
}

void
forktest(void)
{
  43:	83 ec 18             	sub    $0x18,%esp
  int n, pid;

  printf(1, "fork test\n");
  46:	c7 44 24 04 0c 04 00 	movl   $0x40c,0x4(%esp)
  4d:	00 
  4e:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
  55:	e8 b6 ff ff ff       	call   10 <printf>
  5a:	eb 16                	jmp    72 <forktest+0x32>
  5c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi

  for(n=0; n<1000; n++){
    pid = fork();
    if(pid < 0)
      break;
    if(pid == 0)
  60:	0f 84 87 00 00 00    	je     ed <forktest+0xad>
{
  int n, pid;

  printf(1, "fork test\n");

  for(n=0; n<1000; n++){
  66:	83 c3 01             	add    $0x1,%ebx
  69:	81 fb e8 03 00 00    	cmp    $0x3e8,%ebx
  6f:	90                   	nop
  70:	74 4e                	je     c0 <forktest+0x80>
    pid = fork();
  72:	e8 f5 02 00 00       	call   36c <fork>
    if(pid < 0)
  77:	83 f8 00             	cmp    $0x0,%eax
  7a:	7d e4                	jge    60 <forktest+0x20>
  if(n == 1000){
    printf(1, "fork claimed to work 1000 times!\n");
    exit();
  }
  
  for(; n > 0; n--){
  7c:	85 db                	test   %ebx,%ebx
  7e:	66 90                	xchg   %ax,%ax
  80:	74 15                	je     97 <forktest+0x57>
  82:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    if(wait() < 0){
  88:	e8 ef 02 00 00       	call   37c <wait>
  8d:	85 c0                	test   %eax,%eax
  8f:	90                   	nop
  90:	78 47                	js     d9 <forktest+0x99>
  if(n == 1000){
    printf(1, "fork claimed to work 1000 times!\n");
    exit();
  }
  
  for(; n > 0; n--){
  92:	83 eb 01             	sub    $0x1,%ebx
  95:	75 f1                	jne    88 <forktest+0x48>
      printf(1, "wait stopped early\n");
      exit();
    }
  }
  
  if(wait() != -1){
  97:	e8 e0 02 00 00       	call   37c <wait>
  9c:	83 f8 ff             	cmp    $0xffffffff,%eax
  9f:	90                   	nop
  a0:	75 50                	jne    f2 <forktest+0xb2>
    printf(1, "wait got too many\n");
    exit();
  }
  
  printf(1, "fork test OK\n");
  a2:	c7 44 24 04 3e 04 00 	movl   $0x43e,0x4(%esp)
  a9:	00 
  aa:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
  b1:	e8 5a ff ff ff       	call   10 <printf>
}
  b6:	83 c4 18             	add    $0x18,%esp
  b9:	5b                   	pop    %ebx
  ba:	c3                   	ret    
  bb:	90                   	nop
  bc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    if(pid == 0)
      exit();
  }
  
  if(n == 1000){
    printf(1, "fork claimed to work 1000 times!\n");
  c0:	c7 44 24 04 4c 04 00 	movl   $0x44c,0x4(%esp)
  c7:	00 
  c8:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
  cf:	e8 3c ff ff ff       	call   10 <printf>
    exit();
  d4:	e8 9b 02 00 00       	call   374 <exit>
  }
  
  for(; n > 0; n--){
    if(wait() < 0){
      printf(1, "wait stopped early\n");
  d9:	c7 44 24 04 17 04 00 	movl   $0x417,0x4(%esp)
  e0:	00 
  e1:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
  e8:	e8 23 ff ff ff       	call   10 <printf>
      exit();
  ed:	e8 82 02 00 00       	call   374 <exit>
    }
  }
  
  if(wait() != -1){
    printf(1, "wait got too many\n");
  f2:	c7 44 24 04 2b 04 00 	movl   $0x42b,0x4(%esp)
  f9:	00 
  fa:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 101:	e8 0a ff ff ff       	call   10 <printf>
    exit();
 106:	e8 69 02 00 00       	call   374 <exit>
 10b:	90                   	nop
 10c:	90                   	nop
 10d:	90                   	nop
 10e:	90                   	nop
 10f:	90                   	nop

00000110 <strcpy>:
#include "user.h"
#include "x86.h"

char*
strcpy(char *s, char *t)
{
 110:	53                   	push   %ebx
 111:	8b 44 24 08          	mov    0x8(%esp),%eax
  char *os;

  os = s;
  while((*s++ = *t++) != 0)
 115:	31 d2                	xor    %edx,%edx
#include "user.h"
#include "x86.h"

char*
strcpy(char *s, char *t)
{
 117:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
 11b:	90                   	nop
 11c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
  char *os;

  os = s;
  while((*s++ = *t++) != 0)
 120:	0f b6 0c 13          	movzbl (%ebx,%edx,1),%ecx
 124:	88 0c 10             	mov    %cl,(%eax,%edx,1)
 127:	83 c2 01             	add    $0x1,%edx
 12a:	84 c9                	test   %cl,%cl
 12c:	75 f2                	jne    120 <strcpy+0x10>
    ;
  return os;
}
 12e:	5b                   	pop    %ebx
 12f:	c3                   	ret    

00000130 <strcmp>:

int
strcmp(const char *p, const char *q)
{
 130:	56                   	push   %esi
 131:	53                   	push   %ebx
 132:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
 136:	8b 54 24 10          	mov    0x10(%esp),%edx
  while(*p && *p == *q)
 13a:	0f b6 01             	movzbl (%ecx),%eax
 13d:	0f b6 1a             	movzbl (%edx),%ebx
 140:	84 c0                	test   %al,%al
 142:	74 24                	je     168 <strcmp+0x38>
 144:	38 d8                	cmp    %bl,%al
 146:	74 11                	je     159 <strcmp+0x29>
 148:	eb 2e                	jmp    178 <strcmp+0x48>
 14a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 150:	83 c1 01             	add    $0x1,%ecx
 153:	38 d8                	cmp    %bl,%al
 155:	75 21                	jne    178 <strcmp+0x48>
    p++, q++;
 157:	89 f2                	mov    %esi,%edx
}

int
strcmp(const char *p, const char *q)
{
  while(*p && *p == *q)
 159:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
    p++, q++;
 15d:	8d 72 01             	lea    0x1(%edx),%esi
}

int
strcmp(const char *p, const char *q)
{
  while(*p && *p == *q)
 160:	0f b6 5a 01          	movzbl 0x1(%edx),%ebx
 164:	84 c0                	test   %al,%al
 166:	75 e8                	jne    150 <strcmp+0x20>
    p++, q++;
  return (uchar)*p - (uchar)*q;
 168:	0f b6 db             	movzbl %bl,%ebx
}

int
strcmp(const char *p, const char *q)
{
  while(*p && *p == *q)
 16b:	31 c0                	xor    %eax,%eax
    p++, q++;
  return (uchar)*p - (uchar)*q;
 16d:	29 d8                	sub    %ebx,%eax
}
 16f:	5b                   	pop    %ebx
 170:	5e                   	pop    %esi
 171:	c3                   	ret    
 172:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
int
strcmp(const char *p, const char *q)
{
  while(*p && *p == *q)
    p++, q++;
  return (uchar)*p - (uchar)*q;
 178:	0f b6 db             	movzbl %bl,%ebx
}

int
strcmp(const char *p, const char *q)
{
  while(*p && *p == *q)
 17b:	0f b6 c0             	movzbl %al,%eax
    p++, q++;
  return (uchar)*p - (uchar)*q;
 17e:	29 d8                	sub    %ebx,%eax
}
 180:	5b                   	pop    %ebx
 181:	5e                   	pop    %esi
 182:	c3                   	ret    
 183:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 189:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00000190 <strlen>:

uint
strlen(char *s)
{
 190:	8b 4c 24 04          	mov    0x4(%esp),%ecx
  int n;

  for(n = 0; s[n]; n++)
 194:	31 c0                	xor    %eax,%eax
 196:	80 39 00             	cmpb   $0x0,(%ecx)
 199:	74 10                	je     1ab <strlen+0x1b>
 19b:	31 d2                	xor    %edx,%edx
 19d:	8d 76 00             	lea    0x0(%esi),%esi
 1a0:	83 c2 01             	add    $0x1,%edx
 1a3:	80 3c 11 00          	cmpb   $0x0,(%ecx,%edx,1)
 1a7:	89 d0                	mov    %edx,%eax
 1a9:	75 f5                	jne    1a0 <strlen+0x10>
    ;
  return n;
}
 1ab:	f3 c3                	repz ret 
 1ad:	8d 76 00             	lea    0x0(%esi),%esi

000001b0 <memset>:

void*
memset(void *dst, int c, uint n)
{
 1b0:	57                   	push   %edi
 1b1:	8b 54 24 08          	mov    0x8(%esp),%edx
}

static inline void
stosb(void *addr, int data, int cnt)
{
  asm volatile("cld; rep stosb" :
 1b5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
 1b9:	8b 44 24 0c          	mov    0xc(%esp),%eax
 1bd:	89 d7                	mov    %edx,%edi
 1bf:	fc                   	cld    
 1c0:	f3 aa                	rep stos %al,%es:(%edi)
  stosb(dst, c, n);
  return dst;
}
 1c2:	89 d0                	mov    %edx,%eax
 1c4:	5f                   	pop    %edi
 1c5:	c3                   	ret    
 1c6:	8d 76 00             	lea    0x0(%esi),%esi
 1c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

000001d0 <strchr>:

char*
strchr(const char *s, char c)
{
 1d0:	8b 44 24 04          	mov    0x4(%esp),%eax
 1d4:	0f b6 4c 24 08       	movzbl 0x8(%esp),%ecx
  for(; *s; s++)
 1d9:	0f b6 10             	movzbl (%eax),%edx
 1dc:	84 d2                	test   %dl,%dl
 1de:	74 1d                	je     1fd <strchr+0x2d>
    if(*s == c)
 1e0:	38 ca                	cmp    %cl,%dl
 1e2:	75 0e                	jne    1f2 <strchr+0x22>
 1e4:	eb 1c                	jmp    202 <strchr+0x32>
 1e6:	66 90                	xchg   %ax,%ax
}

char*
strchr(const char *s, char c)
{
  for(; *s; s++)
 1e8:	83 c0 01             	add    $0x1,%eax
    if(*s == c)
 1eb:	38 ca                	cmp    %cl,%dl
 1ed:	8d 76 00             	lea    0x0(%esi),%esi
 1f0:	74 0e                	je     200 <strchr+0x30>
}

char*
strchr(const char *s, char c)
{
  for(; *s; s++)
 1f2:	0f b6 50 01          	movzbl 0x1(%eax),%edx
 1f6:	84 d2                	test   %dl,%dl
 1f8:	75 ee                	jne    1e8 <strchr+0x18>
    if(*s == c)
      return (char*) s;
  return 0;
 1fa:	31 c0                	xor    %eax,%eax
 1fc:	c3                   	ret    
 1fd:	31 c0                	xor    %eax,%eax
 1ff:	90                   	nop
}
 200:	f3 c3                	repz ret 
 202:	f3 c3                	repz ret 
 204:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 20a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00000210 <gets>:

char*
gets(char *buf, int max)
{
 210:	55                   	push   %ebp
 211:	57                   	push   %edi
 212:	56                   	push   %esi
  int i, cc;
  char c;

  for(i=0; i+1 < max; ){
 213:	31 f6                	xor    %esi,%esi
  return 0;
}

char*
gets(char *buf, int max)
{
 215:	53                   	push   %ebx
 216:	83 ec 2c             	sub    $0x2c,%esp
 219:	8b 7c 24 40          	mov    0x40(%esp),%edi
 21d:	8b 6c 24 44          	mov    0x44(%esp),%ebp
  int i, cc;
  char c;

  for(i=0; i+1 < max; ){
 221:	eb 38                	jmp    25b <gets+0x4b>
 223:	90                   	nop
 224:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    cc = read(0, &c, 1);
 228:	8d 44 24 1f          	lea    0x1f(%esp),%eax
 22c:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
 233:	00 
 234:	89 44 24 04          	mov    %eax,0x4(%esp)
 238:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 23f:	e8 48 01 00 00       	call   38c <read>
    if(cc < 1)
 244:	85 c0                	test   %eax,%eax
 246:	7e 1a                	jle    262 <gets+0x52>
      break;
    buf[i++] = c;
 248:	0f b6 44 24 1f       	movzbl 0x1f(%esp),%eax
gets(char *buf, int max)
{
  int i, cc;
  char c;

  for(i=0; i+1 < max; ){
 24d:	89 de                	mov    %ebx,%esi
    cc = read(0, &c, 1);
    if(cc < 1)
      break;
    buf[i++] = c;
    if(c == '\n' || c == '\r')
 24f:	3c 0d                	cmp    $0xd,%al

  for(i=0; i+1 < max; ){
    cc = read(0, &c, 1);
    if(cc < 1)
      break;
    buf[i++] = c;
 251:	88 44 1f ff          	mov    %al,-0x1(%edi,%ebx,1)
    if(c == '\n' || c == '\r')
 255:	74 0b                	je     262 <gets+0x52>
 257:	3c 0a                	cmp    $0xa,%al
 259:	74 07                	je     262 <gets+0x52>
gets(char *buf, int max)
{
  int i, cc;
  char c;

  for(i=0; i+1 < max; ){
 25b:	8d 5e 01             	lea    0x1(%esi),%ebx
 25e:	39 eb                	cmp    %ebp,%ebx
 260:	7c c6                	jl     228 <gets+0x18>
      break;
    buf[i++] = c;
    if(c == '\n' || c == '\r')
      break;
  }
  buf[i] = '\0';
 262:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
  return buf;
}
 266:	83 c4 2c             	add    $0x2c,%esp
 269:	89 f8                	mov    %edi,%eax
 26b:	5b                   	pop    %ebx
 26c:	5e                   	pop    %esi
 26d:	5f                   	pop    %edi
 26e:	5d                   	pop    %ebp
 26f:	c3                   	ret    

00000270 <stat>:

int
stat(char *n, struct statt *st)
{
 270:	83 ec 1c             	sub    $0x1c,%esp
  int fd;
  int r;

  fd = open(n, O_RDONLY);
 273:	8b 44 24 20          	mov    0x20(%esp),%eax
  return buf;
}

int
stat(char *n, struct statt *st)
{
 277:	89 5c 24 14          	mov    %ebx,0x14(%esp)
 27b:	89 74 24 18          	mov    %esi,0x18(%esp)
  int fd;
  int r;

  fd = open(n, O_RDONLY);
  if(fd < 0)
    return -1;
 27f:	be ff ff ff ff       	mov    $0xffffffff,%esi
stat(char *n, struct statt *st)
{
  int fd;
  int r;

  fd = open(n, O_RDONLY);
 284:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 28b:	00 
 28c:	89 04 24             	mov    %eax,(%esp)
 28f:	e8 20 01 00 00       	call   3b4 <open>
  if(fd < 0)
 294:	85 c0                	test   %eax,%eax
stat(char *n, struct statt *st)
{
  int fd;
  int r;

  fd = open(n, O_RDONLY);
 296:	89 c3                	mov    %eax,%ebx
  if(fd < 0)
 298:	78 1a                	js     2b4 <stat+0x44>
    return -1;
  r = fstat(fd, st);
 29a:	8b 44 24 24          	mov    0x24(%esp),%eax
 29e:	89 1c 24             	mov    %ebx,(%esp)
 2a1:	89 44 24 04          	mov    %eax,0x4(%esp)
 2a5:	e8 22 01 00 00       	call   3cc <fstat>
  close(fd);
 2aa:	89 1c 24             	mov    %ebx,(%esp)
  int r;

  fd = open(n, O_RDONLY);
  if(fd < 0)
    return -1;
  r = fstat(fd, st);
 2ad:	89 c6                	mov    %eax,%esi
  close(fd);
 2af:	e8 e8 00 00 00       	call   39c <close>
  return r;
}
 2b4:	89 f0                	mov    %esi,%eax
 2b6:	8b 5c 24 14          	mov    0x14(%esp),%ebx
 2ba:	8b 74 24 18          	mov    0x18(%esp),%esi
 2be:	83 c4 1c             	add    $0x1c,%esp
 2c1:	c3                   	ret    
 2c2:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 2c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

000002d0 <atoi>:

int
atoi(const char *s)
{
 2d0:	53                   	push   %ebx
 2d1:	8b 4c 24 08          	mov    0x8(%esp),%ecx
  int n;

  n = 0;
 2d5:	31 c0                	xor    %eax,%eax
  while('0' <= *s && *s <= '9')
 2d7:	0f b6 11             	movzbl (%ecx),%edx
 2da:	8d 5a d0             	lea    -0x30(%edx),%ebx
 2dd:	80 fb 09             	cmp    $0x9,%bl
 2e0:	77 1e                	ja     300 <atoi+0x30>
 2e2:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    n = n*10 + *s++ - '0';
 2e8:	0f be d2             	movsbl %dl,%edx
 2eb:	83 c1 01             	add    $0x1,%ecx
 2ee:	8d 04 80             	lea    (%eax,%eax,4),%eax
 2f1:	8d 44 42 d0          	lea    -0x30(%edx,%eax,2),%eax
atoi(const char *s)
{
  int n;

  n = 0;
  while('0' <= *s && *s <= '9')
 2f5:	0f b6 11             	movzbl (%ecx),%edx
 2f8:	8d 5a d0             	lea    -0x30(%edx),%ebx
 2fb:	80 fb 09             	cmp    $0x9,%bl
 2fe:	76 e8                	jbe    2e8 <atoi+0x18>
    n = n*10 + *s++ - '0';
  return n;
}
 300:	5b                   	pop    %ebx
 301:	c3                   	ret    
 302:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 309:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi

00000310 <memmove>:

void*
memmove(void *vdst, void *vsrc, int n)
{
 310:	56                   	push   %esi
 311:	53                   	push   %ebx
 312:	8b 5c 24 14          	mov    0x14(%esp),%ebx
 316:	8b 44 24 0c          	mov    0xc(%esp),%eax
 31a:	8b 74 24 10          	mov    0x10(%esp),%esi
  char *dst, *src;
  
  dst = vdst;
  src = vsrc;
  while(n-- > 0)
 31e:	85 db                	test   %ebx,%ebx
 320:	7e 14                	jle    336 <memmove+0x26>
    n = n*10 + *s++ - '0';
  return n;
}

void*
memmove(void *vdst, void *vsrc, int n)
 322:	31 d2                	xor    %edx,%edx
 324:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
  char *dst, *src;
  
  dst = vdst;
  src = vsrc;
  while(n-- > 0)
    *dst++ = *src++;
 328:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
 32c:	88 0c 10             	mov    %cl,(%eax,%edx,1)
 32f:	83 c2 01             	add    $0x1,%edx
{
  char *dst, *src;
  
  dst = vdst;
  src = vsrc;
  while(n-- > 0)
 332:	39 da                	cmp    %ebx,%edx
 334:	75 f2                	jne    328 <memmove+0x18>
    *dst++ = *src++;
  return vdst;
}
 336:	5b                   	pop    %ebx
 337:	5e                   	pop    %esi
 338:	c3                   	ret    
 339:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi

00000340 <memcpy>:

void *
memcpy(void *dst, const void *src, uint n)
{
 340:	56                   	push   %esi
 341:	53                   	push   %ebx
 342:	8b 5c 24 14          	mov    0x14(%esp),%ebx
 346:	8b 44 24 0c          	mov    0xc(%esp),%eax
 34a:	8b 74 24 10          	mov    0x10(%esp),%esi
{
  char *dst, *src;
  
  dst = vdst;
  src = vsrc;
  while(n-- > 0)
 34e:	85 db                	test   %ebx,%ebx
 350:	7e 14                	jle    366 <memcpy+0x26>
 352:	31 d2                	xor    %edx,%edx
 354:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
    *dst++ = *src++;
 358:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
 35c:	88 0c 10             	mov    %cl,(%eax,%edx,1)
 35f:	83 c2 01             	add    $0x1,%edx
{
  char *dst, *src;
  
  dst = vdst;
  src = vsrc;
  while(n-- > 0)
 362:	39 da                	cmp    %ebx,%edx
 364:	75 f2                	jne    358 <memcpy+0x18>

void *
memcpy(void *dst, const void *src, uint n)
{
  return memmove(dst, src, n);
}
 366:	5b                   	pop    %ebx
 367:	5e                   	pop    %esi
 368:	c3                   	ret    
 369:	90                   	nop
 36a:	90                   	nop
 36b:	90                   	nop

0000036c <fork>:
 36c:	b8 01 00 00 00       	mov    $0x1,%eax
 371:	cd 40                	int    $0x40
 373:	c3                   	ret    

00000374 <exit>:
 374:	b8 02 00 00 00       	mov    $0x2,%eax
 379:	cd 40                	int    $0x40
 37b:	c3                   	ret    

0000037c <wait>:
 37c:	b8 03 00 00 00       	mov    $0x3,%eax
 381:	cd 40                	int    $0x40
 383:	c3                   	ret    

00000384 <pipe>:
 384:	b8 04 00 00 00       	mov    $0x4,%eax
 389:	cd 40                	int    $0x40
 38b:	c3                   	ret    

0000038c <read>:
 38c:	b8 06 00 00 00       	mov    $0x6,%eax
 391:	cd 40                	int    $0x40
 393:	c3                   	ret    

00000394 <write>:
 394:	b8 05 00 00 00       	mov    $0x5,%eax
 399:	cd 40                	int    $0x40
 39b:	c3                   	ret    

0000039c <close>:
 39c:	b8 07 00 00 00       	mov    $0x7,%eax
 3a1:	cd 40                	int    $0x40
 3a3:	c3                   	ret    

000003a4 <kill>:
 3a4:	b8 08 00 00 00       	mov    $0x8,%eax
 3a9:	cd 40                	int    $0x40
 3ab:	c3                   	ret    

000003ac <exec>:
 3ac:	b8 09 00 00 00       	mov    $0x9,%eax
 3b1:	cd 40                	int    $0x40
 3b3:	c3                   	ret    

000003b4 <open>:
 3b4:	b8 0a 00 00 00       	mov    $0xa,%eax
 3b9:	cd 40                	int    $0x40
 3bb:	c3                   	ret    

000003bc <mknod>:
 3bc:	b8 0b 00 00 00       	mov    $0xb,%eax
 3c1:	cd 40                	int    $0x40
 3c3:	c3                   	ret    

000003c4 <unlink>:
 3c4:	b8 0c 00 00 00       	mov    $0xc,%eax
 3c9:	cd 40                	int    $0x40
 3cb:	c3                   	ret    

000003cc <fstat>:
 3cc:	b8 0d 00 00 00       	mov    $0xd,%eax
 3d1:	cd 40                	int    $0x40
 3d3:	c3                   	ret    

000003d4 <link>:
 3d4:	b8 0e 00 00 00       	mov    $0xe,%eax
 3d9:	cd 40                	int    $0x40
 3db:	c3                   	ret    

000003dc <mkdir>:
 3dc:	b8 0f 00 00 00       	mov    $0xf,%eax
 3e1:	cd 40                	int    $0x40
 3e3:	c3                   	ret    

000003e4 <chdir>:
 3e4:	b8 10 00 00 00       	mov    $0x10,%eax
 3e9:	cd 40                	int    $0x40
 3eb:	c3                   	ret    

000003ec <dup>:
 3ec:	b8 11 00 00 00       	mov    $0x11,%eax
 3f1:	cd 40                	int    $0x40
 3f3:	c3                   	ret    

000003f4 <getpid>:
 3f4:	b8 12 00 00 00       	mov    $0x12,%eax
 3f9:	cd 40                	int    $0x40
 3fb:	c3                   	ret    

000003fc <sbrk>:
 3fc:	b8 13 00 00 00       	mov    $0x13,%eax
 401:	cd 40                	int    $0x40
 403:	c3                   	ret    

00000404 <sleep>:
 404:	b8 14 00 00 00       	mov    $0x14,%eax
 409:	cd 40                	int    $0x40
 40b:	c3                   	ret    
